package leetcode_41_60;

public class myPow_50 {
    /**
     * 递归快速模拟幂数结果
     * @param x
     * @param n
     * @return
     */
    public static double myPow(double x, int n) {
        if (n == 0) return 1;
        double t =myPow(x, n / 2);// 这里相对于function3，是把这个递归操作抽取出来
        if ( n % 2 == 1 )     //每次变成奇数幂，都会少乘或少除一次x
            return t * t * x;
        if(n % 2 == -1)
            return t * t / x;
        if(n==-1)
            return x/x /x;    // 自身的1/x  × 1/x
        return t * t;
    }
}
